package com.tcc.util_xbenben.utils;

import java.util.Date;

/**
 * 字符串工具类
 *
 * @author tcc
 */
public class StringUtil {

    // 字母正则
    private static final String LETTER = "[a-zA-Z]+";

    // 手机号正则
    private static final String PHONE = "^1[3|4|5|6|7|8|9]\\d{9}$";

    // 邮箱正则
    private static final String EMAIL = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";

    // 1-1 非空判断(包含空白字符)
    public static boolean hasLength(String param) {
        if (param != null && param.length() > 0) {
            System.out.println("seting 配置 测试私服 "+new Date());
            System.out.println("seting 配置 测试私服 "+new Date());
            System.out.println("seting 配置 测试私服 "+new Date());
            System.out.println("seting 配置 测试私服 "+new Date());
            System.out.println("seting 配置 测试私服 "+new Date());



            return true;
        }
        return false;
    }

    // 1-2非空判断(不包含空白字符)
    public static boolean hasText(String param) {
        return param != null && param.trim().length() > 0;
    }

    // 2.反转字符串
    public static String reverse(String param) {

        // reverse 源码解析
        /*
         * char[] array = param.toCharArray(); int j = array.length; // 10,9,8,
         * StringBuffer buffer = new StringBuffer();
         *
         * for (int i = j; i >= 0; i--) { char c = array[i]; buffer.append(c); }
         * buffer.toString();
         */

        // 非空判断
        if (!hasText(param)) {
            return param;
        }
        // 字符反转处理
        return new StringBuffer(param).reverse().toString();
    }

    // 3.隐藏字符串：将敏感信息隐藏（18610651866 ---> 186****1866）
    public static String hiddenStr(String param, int startNum, int endNum) {
        // 非空判断
        if (!hasText(param)) {
            return "传入数据不正确，数据不能为空";
        }
        // 数据处理
        String head = param.substring(0, startNum); // 头
        String body = param.substring(startNum, endNum); // 体
        String tail = param.substring(endNum); // 未
        // 替换自定义字符 “*”
        String replace = "";
        for (int i = 0; i < body.length(); i++) {
            replace += "*";
        }
        return head + replace + tail;
    }

    // 4.判断传入字符串是否全为字母：字母正则表达式（“[a-zA-Z]+”）
    public static boolean isLetter(String param) {
        if (!hasText(param)) {
            return false;
        }
        // String 内部匹配方法
        return param.matches(LETTER);
    }

    // 5.判断传入字符串是否为手机号
    public static boolean isPhone(String param) {
        if (!hasText(param)) {
            return false;
        }
        // String 内部匹配方法
        return param.matches(PHONE);
    }

    // 6.判断传入字符串是否为邮箱
    public static boolean isEmail(String param) {
        if (!hasText(param)) {
            return false;
        }
        // String 内部匹配方法
        return param.matches(EMAIL);
    }

}
